Asynchronous Transfer Mode (ATM) is becoming increasingly used in communication networks. ATM is a packet-oriented transfer mode which uses asynchronous time division multiplexing techniques. Packets are called cells and have a fixed size. An ATM cell consists of 53 octets, five of which form a header and forty eight of which constitute a “payload” or information portion of the cell. The header of the ATM cell includes two quantities which are used to identify a connection in an ATM network over which the cell is to travel, particularly the VPI (Virtual Path Identifier) and VCI (Virtual Channel Identifier). In general, the virtual path is a principal path defined between two switching nodes of the network; the virtual channel is one specific connection on the respective principal path.
A protocol reference model has been developed for illustrating layering of ATM. The protocol reference model layers include (from lower to higher layers) a physical layer (including both a physical medium sublayer and a transmission convergence sublayer), an ATM layer, and an ATM adaptation layer (AAL), and higher layers. The basic purpose of the AAL layer is to isolate the higher layers from specific characteristics of the ATM layer by mapping the higher-layer protocol data units (PDU) into the information field of the ATM cell and vise versa. There are several differing AAL types or categories, including AAL0, AAL1, AAL2, AAL3/4, and AAL5. Yet another AAL type, known as AAL2 prime, is described in the following (all of which are incorporated herein by reference: U.S. patent application Ser. No. 09/188,102, filed Nov. 9, 1998; U.S. patent application Ser. No. 09/188,347, filed Nov. 9, 1998; and International Patent Application Number PCT/SE98/02250 (WO 99/33315, published Jul. 1, 1999).
One purpose of AAL2 is to handle compressed voice data in more bandwidth efficiently. AAL2 is a standard defined by B-ISDN ATM Adaptation Layer Specification: Type 2 AAL ITU-TRecommendation I.363.2. An AAL2 packet comprises a three octet packet header, as well as a packet payload. The AAL2 packet header includes an eight bit channel identifier (CID), a six bit length indicator (LI), a five bit User-to-User indicator (UUI), and five bits of header error control (HEC). The AAL2 packet payload, which carries user data, can vary from one to forty-five octets.
Up to 248 AAL2 channels can be multiplexed on an ATM connection. The channel identifier (CID) is used to identify the channels. The length indicator (LI) is binary encoded plus one to the payload length. The User-to-User indicator (UUI) is a field that is conveyed transparently between endpoints. The User-to-User indicator (UUI) has been used for sequence numbering for other services besides segmentation, as described in AAL ITU-T Recommendation I.366.2. However, the previous uses of the UUI field for sequence numbering has not occurred in a segmentation and reassembly context.
An AAL2 packet can overlap an ATM cell boundary and continue in the remainder of the next ATM cell. Thus, AAL2 packet payloads as carried in ATM cells can be segmented, as prescribed (for example) by the document entitled Segmentation and Reassembly Service Specific Convergence Sublayer For The AAL2 Type 2: ITU-T Recommendation I.366.1. This segmentation of AAL2 packet payloads is particularly facilitated by the fact that the first octet in the payload of every ATM cell contains a start field (STF). The start field (STF) contains a modulo 2 sequence counter named SN, which specifies or points to the location of the first AAL2 packet header within the ATM cell payload. The purpose of the start field (STF) is to provide easy resynchronization at the receiving side if the AAL2 packet boundary is lost. Normally, the receiving side finds the boundaries by the length indicator (LI), which indicates the start of the next AAL2 packet.
Other methods for segmentation are described in the following documents: PCT/SE97/00570 [WO 97/38550], entitled MINICELL SEGEMTATION AND REASSEMBLY; and PCT/SE97/00972 [WO 97/48251], entitled MULTIPLEXING OF VOICE AND DATA MINICELLS.
Thus, in the prior art, data packets (e.g., compressed voice packets) are carried in payloads of AAL2 packets, with one or more AAL2 packets (either whole or in part [e.g., segmented]) being carried in ATM cells. With ATM transport, sequencing information is unnecessary user data packets are segmented, since ATM is connection oriented.
In the context of the current invention, by contrast, user data packets belonging to a higher layer (e.g., voice packets) are carried by AAL2 packets, with the AAL2 packets (or segments thereof) being multiplexed into the payload of Internet Protocol (IP) packets. The IP packets can be UDP/Ipv4 or UDP/Ipv6 packet format, with or without RTP, with compressed header or not compressed header. Any underlying transport bearer, e.g., PPP/HDLC, AAL5/ATM may apply since it is in the IP paradigm that it can be carried on all sorts of bearers. See, for example, Swedish patent application SE-9903982(-8), and PCT patent application PCT/SE00/02089, both of which are incorporated herein by reference.
There is a need for segmentation of data packets (e.g., voice packets) having a length longer than 45 octets (45 octets being the length of the payload of the standard AAL2 packet). The need exists when the AAL2 packets are carried in the payload of an IP packet. Since Internet Protocol (IP) packets can be reordered in the network, sequencing information is important for such segmentation.
The present invention fulfills this need by providing techniques for segmenting user data packets (e.g., voice packets) carried in AAL2 packets, and for sequencing those AAL2 packets as the AAL2 packets are carried over Internet Protocol (IP). Concerning segmented user data packets, the techniques of the present invention utilize one or more predetermined values in the length indicator (LI) field in the headers of the certain ones of the plural AAL2 packets to carry information other than packet size information. Further, the techniques of the present invention use the User-to-User indicator (UUI) field of the AAL2 packets to carry AAL2 information such as segmentation notification or sequence-derivable information. For AAL2 packets which carry non-segmented user data packets (e.g., user data packets which can fit with the maximum size of a single AAL2 packet) and for the last segment of a segmented frame, the length indicator (LI) field contains the actual length of the AAL2 packet in conventional manner.
In a first mode of the invention, when a user data packet payload is spread or segmented over plural AAL2 packets, values related and thus corresponding to sequence numbers for the AAL2 packets (which carry the segmented user data packets) are stored in the length indicator (LI) field of all but the last of the plural AAL2 packets utilized by the segmented user data packet. To facilitate this first mode, a range of values are reserved for the length indicator (LI) field. In one illustrated implementation, the range of reserved or predetermined values extends between 48 and 63, inclusive of both 48 and 63. Thus, the range of predetermined or reserved values comprises numbers which are greater than a maximum number of octets in a standard size AAL2 packet. In addition, in this first mode of the invention, the User-to-User indicator (UUI) field of all but the last of the AAL2 packets accommodating segmented user data packets contains a preselected value, the preselected value serving as a notification (1) that the AAL2 packet is not the last AAL2 packet serving the user data packet, and (2) that other AAL2 packets for the same user data packet are to be expected. In one illustrated implementation of this first mode, this continuation notification preselected value for the User-to-User indicator (UUI) field is 27.
Therefore, in the first mode, when an AAL2 packet is detected before reassembly as having a value in the reserved range (e.g., from 48 to 63 inclusive), that AAL2 packet is recognized as serving a segmented user data packet, and having a sequence number which is derived from the value in the length indicator (LI) field. A modulo division of the predetermined value in the length indicator (LI) field provides the sequence number for the AAL2 packet.
A last AAL2 packet of the plural AAL2 packets accommodating the segmented user data packet is detectable in the first mode, since it has in its length indicator field a value not greater than the maximum number of octets in a standard size AAL2 packet. Moreover, the contents of the User-to-User indicator (UUI) field of such a last AAL2 packet can be used to confirm that the last AAL2 packet is in a proper sequence.
The second mode of the invention resembles the first mode in that, when a user data packet payload is spread or segmented over plural AAL2 packets, the sequence number-related values for the AAL2 packets (which carry the segmented user data packets) are stored in the length indicator (LI) field of the plural AAL2 packets utilized by the segmented user data packet. To facilitate this second mode, two ranges of values are reserved for the length indicator (LI) field. In one illustrated implementation, the first range of reserved or predetermined values extends between 48 and 55, inclusive of both 48 and 55, while the second range of reserved or predetermined values extends between 56 and 63, inclusive of both 56 and 63. When the length indicator (LI) field of a received AAL2 packet belongs to the first range, the received AAL2 packet is recognized as being for a first of the plural AAL2 packets containing the user data of the user data frame. When the length indicator (LI) field of a received AAL2 packet belongs to the second range, the received AAL2 packet is recognized as being other than the first of the plural AAL2 packets (e.g., a second, third, fourth AAL2 packet, etc.).
In the second mode of the invention, a last AAL2 packet of the plural AAL2 packets has a predetermined end-of-user data packet value (e.g., zero) in its user-to-user indication (UUI) field of its header, and thus serves to mark reception of the end of the user data packet. The second mode has provision for determining loss of the last AAL2 packet containing the last segment (e.g., end) of a user data packet. If, in the second mode, a last AAL2 packet containing the last segment (e.g., end) of a user data packet is lost, such loss will be ascertained upon next encountering a new AAL2 packet having a first range value in its length indicator (LI) field or a value in the User-to-User indicator (UUI) field in the normal range (1 to 26 inclusive). That is, while looking for such an AAL2 packet containing the last segment of a user data packet, before encountering an AAL2 packet with the predetermined end-of-user data packet value the reassembly subunit RSU will encounter either: (1) a new AAL2 packet having a first range value in its length indicator (LI) field; or (2) an AAL2 packet having its contents in the normal range.
In a third mode of the invention, the predetermined value in the length indicator (LI) field serves as a notification that another AAL2 packet of the plural AAL2 packets carries subsequent data belonging to the frame. As in the other modes, the predetermined value is a value greater than a maximum number of octets in a standard size AAL2 packet. In one example illustrative embodiment, the predetermined value is 46. In this third mode, a last AAL2 packet of the plural AAL2 packets is detected by having in its length indicator field a value not greater than the maximum number of octets in a standard size AAL2 packet. The third mode frees the user-to-user indication (UUI) field in the header of the AAL2 packets, so that the user-to-user indication (UUI) field can serve for other purposes such as sequence number, for example.
One example, non-limiting deployment of any of the modes of the present invention is in the context of a universal mobile telecommunications system (UMTS).